Skip to content

Add Amazon.Lambda.DurableExecution.Testing design doc#2412

Open
GarrettBeatty wants to merge 1 commit into
devfrom
durabletesting
Open

Add Amazon.Lambda.DurableExecution.Testing design doc#2412
GarrettBeatty wants to merge 1 commit into
devfrom
durabletesting

Conversation

@GarrettBeatty

@GarrettBeatty GarrettBeatty commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Spec for a testing SDK companion to Amazon.Lambda.DurableExecution: local DurableTestRunner with in-memory orchestration, CloudDurableTestRunner for integration tests, step inspection API, sibling-function registration, and safety limits. Adopts the IDurableServiceClient seam (Approach B) that Python and JavaScript reference SDKs converged on.

Issue #, if available:
#2216
Description of changes:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

- `Amazon.Lambda.TestUtilities` (project reference) — `TestLambdaContext`, `TestLambdaLogger` for the runner's `ILambdaContext` substitute.
- `Amazon.Lambda.Serialization.SystemTextJson` (package reference) — `DefaultLambdaJsonSerializer` is the fallback when `TestRunnerOptions.Serializer` is null.

### Interception strategy: `IDurableServiceClient` seam

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

injecting this interface seemed like the best way. the other option was to override/implement some custom ILambdaServiceClient (because we already have an overload to pass that in) but this seemed better

@GarrettBeatty GarrettBeatty marked this pull request as ready for review June 10, 2026 23:37
@GarrettBeatty GarrettBeatty requested review from a team as code owners June 10, 2026 23:37
@GarrettBeatty GarrettBeatty requested review from normj and philasmar and removed request for a team June 10, 2026 23:37
Base automatically changed from feature/durablefunction to dev June 11, 2026 17:56
@GarrettBeatty GarrettBeatty marked this pull request as draft June 11, 2026 19:34
Spec for a testing SDK companion to Amazon.Lambda.DurableExecution:
local DurableTestRunner with in-memory orchestration, CloudDurableTestRunner
for integration tests, step inspection API, sibling-function registration,
and safety limits. Adopts the IDurableServiceClient seam (Approach B) that
Python and JavaScript reference SDKs converged on.

Tidy testing SDK design — drop A/B/C exploration framing

The "Approach A vs B vs C" framing only made sense in the brainstorming
chat where the alternatives had been spelled out earlier. The committed
spec should present the chosen design directly and explain why the
service-client interface is right on its own merits.
@GarrettBeatty GarrettBeatty marked this pull request as ready for review June 12, 2026 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants